﻿package mortal.game.view.copy.GroupTowerCopy.data
{
    import Message.DB.Tables.*;
    import Message.Public.*;
    import mortal.game.cache.*;
    import mortal.game.events.*;
    import mortal.game.mvc.*;
    import mortal.game.resource.*;
    import mortal.game.resource.info.item.*;
    import mortal.game.scene3D.map3D.util.*;
    import mortal.mvc.core.*;

    public class GroupTowerCopyUtil extends Object
    {
        public static var CopyCode:int = 146;
        public static var TotalLevel:int = 12;
        public static var isStarTime:Boolean = true;

        public function GroupTowerCopyUtil()
        {
            return;
        }// end function

        public static function enterNextLevelMap() : void
        {
            var _loc_2:SGroupTowerMsg = null;
            var _loc_1:* = Cache.instance.copy.groupTower.passInfo;
            if (_loc_1 != null && Cache.instance.copy.groupTower.isEnd == false)
            {
                Dispatcher.dispatchEvent(new DataEvent(EventName.GroupTowerEnterNextLevel, {copyCode:_loc_1.copyCode, level:_loc_1.level}));
            }
            else if (Cache.instance.copy.groupTower.towerInfo != null && Cache.instance.copy.groupTower.isEnd == false)
            {
                _loc_2 = Cache.instance.copy.groupTower.towerInfo;
                Dispatcher.dispatchEvent(new DataEvent(EventName.GroupTowerEnterNextLevel, {copyCode:_loc_2.copyCode, level:(_loc_2.level - 1)}));
            }
            return;
        }// end function

        public static function getDownRewards(param1:Boolean = false) : Array
        {
            var _loc_4:String = null;
            var _loc_5:int = 0;
            var _loc_6:int = 0;
            var _loc_7:ItemData = null;
            var _loc_2:* = Cache.instance.copy.groupTower.towerInfo;
            if (_loc_2 == null || _loc_2.rewards == null)
            {
                return [];
            }
            var _loc_3:Array = [];
            for (_loc_4 in _loc_2.rewards)
            {
                
                _loc_5 = parseInt(_loc_4);
                _loc_6 = _loc_2.rewards[_loc_4];
                _loc_7 = new ItemData(_loc_5);
                _loc_7.itemAmount = _loc_6;
                if (param1)
                {
                    if (_loc_5 > 1000)
                    {
                        _loc_3.push(_loc_7);
                    }
                    continue;
                }
                _loc_3.push(_loc_7);
            }
            return _loc_3;
        }// end function

        public static function getCurMapLevel(param1:int) : int
        {
            var _loc_3:int = 0;
            var _loc_4:Array = null;
            var _loc_5:int = 0;
            var _loc_2:* = CopyConfig.instance.getCopyInfoByCode(param1);
            if (_loc_2)
            {
                _loc_3 = MapFileUtil.mapID;
                _loc_4 = _loc_2.maps.split("#");
                _loc_5 = _loc_4.indexOf("" + _loc_3);
                if (_loc_5 != -1)
                {
                    return (_loc_5 + 1);
                }
            }
            return 1000;
        }// end function

        public static function getNumByGroup(param1:int) : int
        {
            var _loc_2:* = CopyConfig.instance.getCopyInfoByCode(param1).dayNum;
            var _loc_3:* = _loc_2 - Cache.instance.copy.getGroupCopyEnterNumByGroup(param1);
            var _loc_4:* = Cache.instance.copy.getCopyExtraEnterNumByGroup(param1);
            _loc_3 = _loc_3 + _loc_4;
            _loc_3 = _loc_3 < 0 ? (0) : (_loc_3);
            return _loc_3;
        }// end function

        public static function getSingleTowerCopyNum() : int
        {
            var _loc_1:int = 0;
            if (Cache.instance.copy.groupTower.singleGanInfo)
            {
                _loc_1 = 3 - Cache.instance.copy.groupTower.singleGanInfo.todayPassNum;
            }
            _loc_1 = _loc_1 < 0 ? (0) : (_loc_1);
            return _loc_1;
        }// end function

        public static function getTotalNumByGroup(param1:int) : int
        {
            var _loc_2:* = CopyConfig.instance.getCopyInfoByCode(param1).dayNum;
            return _loc_2;
        }// end function

        public static function getFailPassInfo() : Array
        {
            var _loc_4:int = 0;
            var _loc_1:Array = [];
            var _loc_2:Array = [];
            var _loc_3:* = Cache.instance.copy.groupTower.towerInfo;
            if (GroupTowerCopyUtil.TotalLevel == _loc_3.level)
            {
                _loc_4 = _loc_3.level;
            }
            else
            {
                _loc_4 = _loc_3.level - 1;
            }
            _loc_4 = _loc_4 < 0 ? (0) : (_loc_4);
            _loc_2[0] = _loc_4;
            _loc_2[1] = GroupTowerCopyUtil.TotalLevel;
            var _loc_5:* = GroupTowerCopyUtil.getDownRewards(true);
            _loc_1[0] = _loc_2;
            _loc_1[1] = _loc_5;
            return _loc_1;
        }// end function

    }
}
